The present invention relates generally to voice messaging systems, and more particularly to a multiple node messaging system wherein each Network Interface Unit or Telephony Services Platform (which is a form of Network Interface Unit) is shared by two or more host computers. Still more particularly, the present invention concerns a voice messaging system including a mechanism for preventing channels from being hung so completely that they can not be recovered. The invention also prevents cross connection of calls such that a customer using a given channel can find himself listening to someone else""s call.
Messaging systems that provide voice, fax and/or e-mail messaging capabilities are well known. FIG. 1 illustrates an exemplary prior art messaging system developed by Unisys Corporation, Blue Bell, Pa., the assignee of the present invention. The system of FIG. 1 comprises multiple servers (which may be implemented, e.g., with A-series or Clearpath(trademark) computers offered by Unisys Corporation) each supporting a network applications platform (NAP), which provides an underlying platform for storage and retrieval of messages, and a messaging application running on the platform. A voice mail application, such as the Unisys Universal Voice Messaging System (UVMS), is an example of a messaging application that runs on the messaging platform. The UVMS application determines how calls to the messaging system are handled, what prompts are played to callers, and which features are available. Such applications typically maintain a database of subscribers who have xe2x80x9cmailboxesxe2x80x9d on the system. The messaging platform interfaces to a telephone network through a Network Interface Unit (NIU). Received messages are stored by the messaging platform in a local message store, or voice file.
The network applications platform, or NAP, may be located at a local telephone company connected to one or more central offices or switches, or could alternatively be located on the premises of a customer, such as a large or medium-sized company. In the latter case, the NAP would typically be connected to a private branch exchange (PBX) instead of directly to a PSTN. Telephone customers typically demand high (close to 100%) system availability, which means that, for a large customer having hundreds or even thousands of employees at a given location, it is extremely difficult to take the telephony application off-line for even a short time to make updates or modifications. Therefore, when it becomes necessary to modify the application in any way, the application provider needs a way to make such modifications in a way that maintains system availability. This need is particularly severe for high volume telephony systems, which typically cannot be taken out of service without inconveniencing significant numbers of users.
Network Interface Units are available from a number of different vendors. For example, NIUs suitable for use with the present invention include: (a) the Telephony Services Platform available from Unisys Corporation, Blue Bell, Pa.; (b) the Summa Four VCO 80 available from Summa Four, Inc., Manchester, N.H.; and (c) the Voice Frame 2020 available from Harris Corporation, Melbourne, Fla. The Telephony Services Platform (TSP) is most preferred. The difference between it and the other products just mentioned is that the TSP includes a board that plays back digitized voice from a voice file whereas the other products require a separate playback module.
In use, if a subscriber is not available when an incoming call is received, the Public Switched Telephone Network (PSTN) forwards the call to the messaging system, which typically allows the caller to record a message, and then will store the message for later retrieval by the subscriber. A key (or token) returned to the messaging application uniquely identifies the stored message data within the message store. This key can be used at a later time to retrieve the message from the message store for playback to the subscriber.
In the exemplary system shown in FIG. 1, a first node of the system comprises a server/NAP 10a, voice file and database 12a and NIU 14a. Similarly, a second node comprises a server/NAP 10b, voice file and database 12b and NIU 14b; and a third node comprises a server/NAP 10c, voice file and database 12c and NIU 14c. The first node, e.g., could be responsible for a predefined geographic area encompassing hundreds of thousands of subscribers, or simply for a predefined set of telephone lines or circuits. The respective nodes are separately coupled to a public switched telephone network, or PSTN, 16, and are thereby made accessible to their subscribers. Moreover, subscribers of one node can employ messaging to transfer copies of messages (such as voice messages) to subscribers of another node. The respective nodes may or may not share access to each other""s voice files (see copending application Ser. No. 09/161,214, filed Sep. 25, 1998, xe2x80x9cMultiple Node Messaging System Wherein Nodes Have Shared Access To Message Stores Of Other Nodesxe2x80x9d).
An important characteristic of a messaging system is that it be highly reliable and able to quickly recover from system failures. This characteristic is generally referred to as system xe2x80x9cavailability.xe2x80x9d The present invention relates to a messaging system architecture that comprises an NIU and a messaging platform (such as NAP). In such a system, normal processing by the NIU and messaging platform on a given channel can become corrupted due to some failure in either the NIU or the messaging platform. This is commonly referred to as a xe2x80x9cprotocol violation.xe2x80x9d In this situation, the channel on which the protocol violation occurred, or a call on that channel, may become xe2x80x9chung.xe2x80x9d The NIU and messaging platform may be unaware that the channel is hung, and may continue to operate as if an existing call is in progress on that channel. However, the telephone network may have long since terminated the actual call on the corresponding voice channel of the telephone network. If a new call comes in from the telephone network on that same channel, it cannot be processed because the corresponding channel in the NIU is hung. The present invention provides a mechanism for preventing such hung calls/channels.
Further background information concerning the construction and operation of messaging systems, and particularly systems employing a Network Applications Platform (NAP) for interfacing a telephone network and network applications running on an enterprise server, may be found in the following patents and copending patent applications, which are hereby incorporated by reference:
U.S. Pat. No. 5,133,004, Jul. 21, 1992, xe2x80x9cDigital Computer Platform for Supporting Telephone Network Applicationsxe2x80x9d;
U.S. Pat. No. 5,138,710, Aug. 11, 1992, xe2x80x9cApparatus and Method for Providing Recoverability in Mass Storage Data Base Systems Without Audit Trail Mechanismsxe2x80x9d;
U.S. Pat. No. 5,384,829, Jan. 24, 1995, xe2x80x9cDigital Computer Platform for Supporting Telephone Network Applicationsxe2x80x9d;
U.S. Pat. No. 5,323,450, Jun. 21, 1994, xe2x80x9cTelephone Network Applications Platform for Supporting Facsimile Applicationsxe2x80x9d;
U.S. Pat. No. 5,494,606, Feb. 20, 1996, xe2x80x9cMulti-Lingual Prompt Management System for a Network Applications Platformxe2x80x9d;
U.S. Pat. No. 5,633,916, May 27, 1997, xe2x80x9cUniversal Messaging Service Using Single Voice Grade Telephone Line Within a Client/Server Architecturexe2x80x9d;
U.S. patent application Ser. No. 08/944,924, filed Oct. 6, 1997, xe2x80x9cEnhanced Multi-Lingual Prompt Management in a Voice Messaging System With Support for Speech Recognitionxe2x80x9d;
U.S. patent application Ser. No. 08/964,744, filed Nov. 5, 1997, xe2x80x9cMethods and Apparatus for Providing External Access to Executable Call Flows of a Network Applicationxe2x80x9d;
U.S. patent application Ser. No. 08/987,571, filed Dec. 11, 1997, xe2x80x9cMultiple Language Electronic Mail Notification of Received Voice and/or Fax Messagesxe2x80x9d;
U.S. patent application Ser. No. 09/094,126, filed Jun. 9, 1998, titled xe2x80x9cUniversal Messaging System Providing Integrated Voice, Data and Fax Messaging Services to PC/Web-based Clients, Including a Session Manager for Maintaining a Session Between a Messaging Platform and the Web-based Clientsxe2x80x9d;
U.S. patent application Ser. No. 09/093,593, filed Jun. 9, 1998, titled xe2x80x9cUniversal Messaging System Providing Integrated Voice, Data and Fax Messaging Services to PC/Web-based Clients, Including a Content Manager for Receiving Information from Content Providers and Formatting the Same into Multimedia Containers for Distribution to Web-based Clientsxe2x80x9d;
U.S. patent application Ser. No. 09/094,266, filed Jun. 9, 1998, titled xe2x80x9cUniversal Messaging System Providing Integrated Voice, Data and Fax Messaging Services to PC/Web-based Clients, Including a Large Object Server for Efficiently Distributing Voice/Fax Messages to Web-based Clientsxe2x80x9d;
U.S. patent application Ser. No. 09/094,026, filed Jun. 9, 1998, xe2x80x9cSystem and Method for Integrating Notification Functions of Two Messaging Systems in a Universal Messaging Solutionxe2x80x9d;
U.S. patent application Ser. No. 09/161,214, filed Sep. 25, 1998, xe2x80x9cMultiple Node Messaging System Wherein Nodes Have Shared Access To Message Stores Of Other Nodesxe2x80x9d; and
U.S. patent application Ser. No. 09/307,014, filed May 7, 1999, xe2x80x9cInter-System Call Transferxe2x80x9d.
As discussed above, the present invention may be utilized to provide a xe2x80x9chigh availabilityxe2x80x9d messaging system comprising network interface devices (NIDs), such as TSPs or NIUs (the terms TSP and NIU are considered synonymous in the context of the present invention), that are shared by a number of host computers. The present invention is not limited to the specific interface device architectures disclosed herein, and so the term xe2x80x9cnetwork interface devicexe2x80x9d is intended to encompass NIUs in general as well as the TSP employed in the preferred embodiments.
The present invention is most suitably used in a voice messaging system of the type in which a caller attempting to reach a voice messaging system subscriber can leave a voice-mail message for the subscriber, for example, in the event that the subscriber is not able to take the call. The message database and message handling capabilities of the system are provided by a voice messaging platform, which typically comprises a fairly large computer system. For example, Unisys Corporation, the assignee of the present invention, manufactures a voice messaging system in which its Clearpath NX computer serves as the messaging platform. In that system, a xe2x80x9cnetwork application,xe2x80x9d which defines the call flows of the voice messaging system, runs on top of Voice Network Management System (VNMS) software on the messaging platform.
A network interface device, or NID, serves as the interface between the public telephone network and the messaging platform. Calls coming in from voice channels of the telephone network are routed to pre-assigned channels in the NID. The messaging platform and NID assign a unique Call ID to each new incoming call.
Because each channel in the NID is pre-assigned to a particular voice channel of the telephone network, in normal operation the NID should never receive a new call on a channel that is already processing an existing call. (Note that the telephone network carries only one call on a given voice channel at a time.) However, as discussed above, normal processing by the ND and messaging platform can become corrupted due to a failure in either the NID or the messaging platform. The present inventors have developed a protocol that can be implemented in the NID and messaging platform to prevent a channel in which a protocol violation has occurred from being hung for long periods of time.
According to the invention, when a new call is received by the NID on a given channel, the NID first determines from its internal state whether a call is already in progress on that channel. Recall that, in normal operation, this should never occur because the telephone network does not carry more than one call on a particular voice channel. If the NID determines that there is no existing call on the channel, then the new call is accepted and normal processing of that call proceeds. If, however, the NID determines that a different call is already in progress, the invention requires that the NID, being unable to determine which of the calls is in error, terminate the call in progress at both the NID and the messaging platform. Additionally, the new incoming call is rejected. While this results in the loss of the incoming call, subsequent calls on that channel will now be processed properly.
Other features of the present invention are disclosed below.